package com.qiaofang.collectmanage.stub.facade;
import com.qiaofang.collectmanage.stub.request.*;
import com.qiaofang.collectmanage.stub.response.*;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.qiaofang.collectmanage.stub.request.GetCrawlerTaskByUuidRequest;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
@FeignClient(name = "collectmanage",url="${feign.url.collectmanage}")
@RequestMapping("/crawlerTask")
@Api(tags = "crawlerTask", description = "爬虫任务")
public interface CrawlerTaskFacade {

    @RequestMapping(value = "/getTaskByUuid", method = RequestMethod.POST)
    @ApiOperation(value = "查询对象根据uuid", notes = "查询对象根据uuid")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "GetCrawlerTaskByUuidRequest") })
    public GetCrawlerTaskByUuidResponse getCrawlerTaskByUuid(GetCrawlerTaskByUuidRequest request);

    @RequestMapping(value = "/getTaskByTask", method = RequestMethod.POST)
    @ApiOperation(value = "查询对象根据对象", notes = "查询对象根据对象")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "GetCrawlerTaskByTaskRequest") })
    public GetCrawlerTaskByTaskResponse getCrawlerTaskByTask(GetCrawlerTaskByTaskRequest request);


    @RequestMapping(value = "/saveTask", method = RequestMethod.POST)
    @ApiOperation(value = "保存对象", notes = "保存对象")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "SaveCrawlerTaskRequest") })
    public SaveCrawlerTaskResponse saveCrawlerTask(SaveCrawlerTaskRequest request);

    @RequestMapping(value = "updateTask", method = RequestMethod.POST)
    @ApiOperation(value = "更新对象", notes = "更新对象")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "UpdateCrawlerTaskRequest") })
    public UpdateCrawlerTaskResponse updateCrawlerTask(UpdateCrawlerTaskRequest request);


    @RequestMapping(value = "removeTask", method = RequestMethod.POST)
    @ApiOperation(value = "删除对象", notes = "删除对象")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "RemoveCrawlerTaskRequest") })
    public RemoveCrawlerTaskResponse removeCrawlerTask(RemoveCrawlerTaskRequest request);

    @RequestMapping(value = "searchTask", method = RequestMethod.POST)
    @ApiOperation(value = "搜索对象", notes = "搜索对象")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "SearchCrawlerTaskRequest") })
    public SearchCrawlerTaskResponse searchCrawlerTask(SearchCrawlerTaskRequest request);

    @RequestMapping(value = "listTask", method = RequestMethod.POST)
    @ApiOperation(value = "获取多个对象不包含删的的", notes = "获取多个对象")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "ListCrawlerTaskRequest") })
    public ListCrawlerTaskResponse listCrawlerTask(ListCrawlerTaskRequest request);


    @RequestMapping(value = "listTaskByUuids", method = RequestMethod.POST)
    @ApiOperation(value = "根据uuids集合获取集合包含删除的", notes = "根据uuids集合获取集合包含删除的")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "ListCrawlerTaskByUuidsRequest") })
    public ListCrawlerTaskByUuidsResponse listCrawlerTaskByUuids(ListCrawlerTaskByUuidsRequest request);

    @RequestMapping(value = "listCrawlerTaskCollectRuleByIds", method = RequestMethod.POST)
    @ApiOperation(value = "根据ids集合获取采集频道", notes = "根据ids集合获取采集频道")
    @ApiImplicitParams({@ApiImplicitParam(name = "request", value = "请求参数", dataType = "ListCollectRuleByIdsRequest") })
    public ListCollectRuleByIdsResponse listCrawlerTaskCollectRuleByIds(ListCollectRuleByIdsRequest request);

}
